#ifndef THINK_THINK_CONSOLE_COMMAND_HELP_H
#define THINK_THINK_CONSOLE_COMMAND_HELP_H

static char* think_console_command_help =
	"\n"
	"// +----------------------------------------------------------------------\n"
	"// | ThinkPHP [ WE CAN DO IT JUST THINK ]\n"
	"// +----------------------------------------------------------------------\n"
	"// | Copyright (c) 2006~2015 http://thinkphp.cn All rights reserved.\n"
	"// +----------------------------------------------------------------------\n"
	"// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\n"
	"// +----------------------------------------------------------------------\n"
	"// | Author: yunwuxin <448901948@qq.com>\n"
	"// +----------------------------------------------------------------------\n"
	"\n"
	"namespace think\\console\\command;\n"
	"\n"
	"use think\\console\\Command;\n"
	"use think\\console\\Input;\n"
	"use think\\console\\input\\Argument as InputArgument;\n"
	"use think\\console\\input\\Option as InputOption;\n"
	"use think\\console\\Output;\n"
	"\n"
	"class Help extends Command\n"
	"{\n"
	"\n"
	"    private $command;\n"
	"\n"
	"    /**\n"
	"     * {@inheritdoc}\n"
	"     */\n"
	"    protected function configure()\n"
	"    {\n"
	"        $this->ignoreValidationErrors();\n"
	"\n"
	"        $this->setName(\'help\')->setDefinition([\n"
	"            new InputArgument(\'command_name\', InputArgument::OPTIONAL, \'The command name\', \'help\'),\n"
	"            new InputOption(\'raw\', null, InputOption::VALUE_NONE, \'To output raw command help\'),\n"
	"        ])->setDescription(\'Displays help for a command\')->setHelp(<<<EOF\n"
	"The <info>%command.name%</info> command displays help for a given command:\n"
	"\n"
	"  <info>php %command.full_name% list</info>\n"
	"\n"
	"To display the list of available commands, please use the <info>list</info> command.\n"
	"EOF\n"
	"        );\n"
	"    }\n"
	"\n"
	"    /**\n"
	"     * Sets the command.\n"
	"     * @param Command $command The command to set\n"
	"     */\n"
	"    public function setCommand(Command $command)\n"
	"    {\n"
	"        $this->command = $command;\n"
	"    }\n"
	"\n"
	"    /**\n"
	"     * {@inheritdoc}\n"
	"     */\n"
	"    protected function execute(Input $input, Output $output)\n"
	"    {\n"
	"        if (null === $this->command) {\n"
	"            $this->command = $this->getConsole()->find($input->getArgument(\'command_name\'));\n"
	"        }\n"
	"\n"
	"        $output->describe($this->command, [\n"
	"            \'raw_text\' => $input->getOption(\'raw\'),\n"
	"        ]);\n"
	"\n"
	"        $this->command = null;\n"
	"    }\n"
	"}\n"
	"\n"
;
#endif